home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-03 / pbwiz16.zip / DEMO.BAS < prev    next >
BASIC Source File  |  1993-02-24  |  6KB  |  197 lines

  1. '   +----------------------------------------------------------------------+
  2. '   |                                                                      |
  3. '   |         PBWIZ  Copyright (c) 1991-1993  Thomas G. Hanlin III         |
  4. '   |                                                                      |
  5. '   |                      PowerBASIC Wizard's Library                     |
  6. '   |                                                                      |
  7. '   +----------------------------------------------------------------------+
  8.  
  9.    $DIM ARRAY
  10.  
  11.    DECLARE FUNCTION CommPorts% ()
  12.    DECLARE FUNCTION Floppies% ()
  13.    DECLARE SUB GetDisplay (INTEGER, INTEGER)
  14.    DECLARE SUB GetDOSv (INTEGER, INTEGER)
  15.    DECLARE SUB GetEMSm (INTEGER, INTEGER)
  16.    DECLARE SUB GetEMSv (INTEGER, INTEGER)
  17.    DECLARE FUNCTION GetExtM& ()
  18.    DECLARE SUB GetXMSm (LONG, LONG)
  19.    DECLARE SUB GetXMSv (INTEGER, INTEGER)
  20.    DECLARE FUNCTION PCDate$ ()
  21.    DECLARE FUNCTION PCType% ()
  22.    DECLARE SUB PopWindow (INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, STRING)
  23.    DECLARE FUNCTION Processor% ()
  24.    DECLARE FUNCTION PrtPorts% ()
  25.    DECLARE SUB XQPrint (STRING, INTEGER, INTEGER, INTEGER)
  26.  
  27.    $LINK "pbwiz.pbl"
  28.  
  29.    DEFINT A-Z
  30.  
  31.  
  32. '  ----- Pick the colors to use -----------------------------------------------
  33.  
  34.  
  35.    CALL GetDisplay (Adapter, Mono)
  36.  
  37.    IF Mono THEN
  38.       Attr = CalcAttr (7, 0)
  39.    ELSE
  40.       Attr = CalcAttr (7, 1)
  41.    END IF
  42.  
  43.  
  44. '  ----- Clear the screen and pop up the window -------------------------------
  45.  
  46.  
  47.    CLS
  48.  
  49.    Fore = 15
  50.    IF Mono THEN
  51.       Back = 0
  52.    ELSE
  53.       Back = 1
  54.    END IF
  55.    Attr = CalcAttr(Fore, Back)
  56.    Frame = 1
  57.    Grow = 15
  58.    Shade = 0
  59.    Title$ = "PBWiz Demo"
  60.    CALL PopWindow (2, 2, 23, 77, Frame, Attr, Grow, Shade, 10, Title$)
  61.  
  62.  
  63. '  ----- Add a text note inside the window ------------------------------------
  64.  
  65.  
  66.    Row = 3
  67.    CALL XQPrint ("This is an admittedly trivial demo for the PBWiz library.  I'll", Row, 3, Attr)
  68.    Row = Row + 1
  69.    CALL XQPrint ("improve it drastically in later versions.  However, for now it will", Row, 3, Attr)
  70.    Row = Row + 1
  71.    CALL XQPrint ("provide an example of how to access the PBWiz routines.", Row, 3, Attr)
  72.    Row = Row + 2
  73.  
  74.  
  75. '  ----- Display processor type -----------------------------------------------
  76.  
  77.  
  78.    SELECT CASE Processor
  79.       CASE 1: St$ = "8088"
  80.       CASE 2: St$ = "80186"
  81.       CASE 3: St$ = "80286"
  82.       CASE 4: St$ = "80386"
  83.       CASE ELSE: St$ = "80?86"
  84.    END SELECT
  85.    CALL XQPrint ("Processor: " + St$, Row, 3, Attr)
  86.    Row = Row + 1
  87.  
  88.  
  89. '  ----- Display DOS version --------------------------------------------------
  90.  
  91.  
  92.    CALL GetDOSv (MajorV, MinorV)
  93.    DOSv$ = STR$(MajorV) + "." + RIGHT$("0" + LTRIM$(STR$(MinorV)), 2)
  94.    St$ = ""
  95.    IF MajorV > 9 THEN St$ = "   OS/2 Compatibility Box"
  96.    IF DRDOS THEN St$ = " (DR DOS)"
  97.    CALL XQPrint ("DOS version:" + DOSv$ + St$, Row, 3, Attr)
  98.    Row = Row + 1
  99.  
  100.  
  101. '  ----- Display basic equipment info -----------------------------------------
  102.  
  103.  
  104.    CALL XQPrint ("Floppy drives:" + STR$(Floppies), Row, 3, Attr)
  105.    Row = Row + 1
  106.  
  107.  
  108. '  ----- Display video adapter type -------------------------------------------
  109.  
  110.  
  111.    SELECT CASE Adapter
  112.       CASE 1: St$ = "MDA"
  113.       CASE 2: St$ = "Hercules"
  114.       CASE 3: St$ = "CGA"
  115.       CASE 4: St$ = "EGA"
  116.       CASE 5: St$ = "MCGA"
  117.       CASE 6: St$ = "VGA"
  118.    END SELECT
  119.    IF Mono THEN
  120.       St$ = St$ + " on a monochrome monitor"
  121.    ELSE
  122.       St$ = St$ + " on a color monitor"
  123.    END IF
  124.    CALL XQPrint ("Display: " + St$, Row, 3, Attr)
  125.    Row = Row + 1
  126.  
  127.  
  128. '  ----- Display BIOS date and type -------------------------------------------
  129.  
  130.  
  131.    CALL XQPrint ("ROM BIOS date: " + PCDate$, Row, 3, Attr)
  132.    Row = Row + 1
  133.  
  134.    SELECT CASE PCType
  135.       CASE 251, 254, 255: St$ = "PC/XT"
  136.       CASE 253: St$ = "PCjr"
  137.       CASE 252: St$ = "PC AT": ATtype = -1
  138.       CASE 250: St$ = "PS/2 Model 30"
  139.       CASE 249: St$ = "PC Convertible"
  140.       CASE 248: St$ = "PS/2 Model 70 or 80": ATtype = -1
  141.       CASE 45, 154: St$ = "Compaq Portable"
  142.       CASE ELSE: St$ = "unknown"
  143.    END SELECT
  144.    CALL XQPrint ("Computer type: " + St$, Row, 3, Attr)
  145.    Row = Row + 1
  146.  
  147.  
  148. '  ----- Display extended and expanded memory info ----------------------------
  149.  
  150.  
  151.    IF ATtype THEN
  152.       CALL XQPrint ("Extended memory (BIOS):" + STR$(GetExtM&) + " Kbytes", Row, 3, Attr)
  153.       Row = Row + 1
  154.    END IF
  155.  
  156.    IF ATtype THEN
  157.       CALL GetXMSv (MajorV, MinorV)
  158.       CALL GetXMSm (LargeBlock&, TotalFree&)
  159.       IF MajorV OR MinorV THEN
  160.          St$ = STR$(MajorV) + "." + RIGHT$("0" + LTRIM$(STR$(MinorV)), 2)
  161.          CALL XQPrint ("Extended memory (XMS):", Row, 3, Attr)
  162.          Row = Row + 1
  163.          CALL XQPrint ("   Version:" + St$, Row, 3, Attr)
  164.          Row = Row + 1
  165.          CALL XQPrint ("   Free   :" + STR$(TotalFree&) + " Kbytes", Row, 3, Attr)
  166.          Row = Row + 1
  167.       END IF
  168.    END IF
  169.  
  170.    CALL GetEMSm (TotalPages, FreePages)
  171.    IF TotalPages THEN
  172.       CALL GetEMSv (MajorV, MinorV)
  173.       St$ = STR$(MajorV) + "." + RIGHT$("0" + LTRIM$(STR$(MinorV)), 2)
  174.       CALL XQPrint ("Expanded memory:", Row, 3, Attr)
  175.       Row = Row + 1
  176.       CALL XQPrint ("   Version:" + St$, Row, 3, Attr)
  177.       Row = Row + 1
  178.       CALL XQPrint ("   Total  :" + STR$(TotalPages * 16) + " Kbytes", Row, 3, Attr)
  179.       Row = Row + 1
  180.       CALL XQPrint ("   Free   :" + STR$(FreePages * 16) + " Kbytes", Row, 3, Attr)
  181.       Row = Row + 1
  182.    END IF
  183.  
  184.    St$ = STR$(CommPorts)
  185.    CALL XQPrint ("COM ports:" + St$, Row, 3, Attr)
  186.    Row = Row + 1
  187.  
  188.    St$ = STR$(PrtPorts)
  189.    CALL XQPrint ("LPT ports:" + St$, Row, 3, Attr)
  190.    Row = Row + 1
  191.  
  192.  
  193. '  ----- Make sure the DOS prompt doesn't get in the way ----------------------
  194.  
  195.  
  196.    LOCATE 24, 1, 1
  197.